/**
 * 请求拦截
 * @param {Object} http
 */
let sys = uni.getSystemInfoSync()
let obj = {
	'android':1,
	'ios': 2,
	'windows': 3,
	'macos': 4
}
module.exports = (vm) => {
    uni.$u.http.interceptors.request.use((config) => { // 可使用async await 做异步操作
        // 初始化请求拦截器时，会执行此方法，此时data为undefined，赋予默认{}
		let userToken = uni.getStorageSync('userToken')
        config.data = {
			...config.data,
			clientType: obj[sys.osName], //客户端类型 1: Andriod, 2: iOS, 3: web, 4: h5
			...config.params,
			// clientType: 4, //客户端类型 1: Andriod, 2: iOS, 3: web, 4: h5
			version:'1.0.19',
			lang:vm.$store.getters.languageEnum[vm.$store.getters.appLanguage]
		}
		if(config.method=='POST'){
			config.header = {
				...config.header,
				Authorization:`bearer ${userToken}`
			}
		}
		
		
        // 可以在此通过vm引用vuex中的变量，具体值在vm.$store.state中
        // console.log(vm.$store.state);
        return config
    }, (config) => // 可使用async await 做异步操作
        Promise.reject(config))
}
